
/**
 * This class represents a traveller that has a name and health value. 
 * Traveller can be one of leader and member.
 * 
 * @author samkim
 *
 */

public abstract class Traveller {
	private String name;
	// still have to implement max weight, etc.
	
	public Traveller() {
		this.name = "";
	}
	
	public Traveller(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String toString() {
		return name;
	}
	

	/**
	 * Effects food supply and health. The Traveller will attempt to consume the 
	 * inputed amount of food, taking from it's own food supply. If his food supply is
	 * less than the ration, than all of his remaining food will be consumed, and false
	 * will be returned. Otherwise, the amount of food equal to ration will be consumed and
	 * true will be returned. 
	 * @param ration The amount of food the Traveller should consume if available
	 * @return boolean indicating the success of the food consumption.
	 */
    public boolean eat(int ration) {
        // TODO Auto-generated method stub
        return false;
    }

    /**
     * Effects speed and fatigue. Causes the Traveller to move forward by amount specified by 
     * work. The traveller's fatigue is also reduced proportional to work. 
     * @param work How far the Traveller will walk.
     */
    public void walk(int work) {
        // TODO Auto-generated method stub
        
    }

	
}
